package com.dq.health.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.dq.health.dto.request.user.QueryUserParam;
import com.dq.health.dto.request.user.SaveUserRequest;
import com.dq.health.dto.response.user.UserDetail;
import com.dq.health.entity.user.UserBaseInfo;

/**
 * <用户接口>
 *
 * @Author: chenxin
 * @Date: 2021/5/10
 */
public interface IAPIUserService {

    /**
     * 功能描述: 根据id查询
     *
     * @Author: chenxin
     * @Param: [userId]
     * @Date: 2021/5/11
     */
    UserBaseInfo queryUserById(Long userId);

    /**
     * 功能描述: 查询用户详情
     *
     * @author: chenxin
     * @param: [userId]
     * @date: 2021/5/11
     */
    UserDetail queryUserDetail(Long userId);

    /**
     * 功能描述: 根据用户名查询
     *
     * @Author: chenxin
     * @Param: [userName]
     * @Date: 2021/5/11
     */
    UserBaseInfo queryUserByUserName(String userName);

    /**
     * 功能描述: 根据手机号查询
     *
     * @Author: chenxin
     * @Param: [mobile]
     * @Date: 2021/5/11
     */
    UserBaseInfo queryUserByMobile(String mobile);

    /**
     * 功能描述: 分页查询用户列表
     *
     * @Author: chenxin
     * @Param: [param]
     * @Date: 2021/5/11
     */
    IPage<UserDetail> queryUserList(QueryUserParam param);

    /**
     * 功能描述: 添加用户
     *
     * @Author: chenxin
     * @Param: [sysUser, roleIdsList]
     * @Date: 2021/5/11
     */
    Long addUser(SaveUserRequest request);

    /**
     * 功能描述: 修改用户信息
     *
     * @Author: chenxin
     * @Param: [sysUser]
     * @Date: 2021/5/11
     */
    void updateUserInfo(SaveUserRequest request);

    /**
     * 功能描述: 修改密码
     *
     * @Author: chenxin
     * @Param: [userId, password]
     * @Date: 2021/5/11
     */
    void updatePassword(Long userId, String password);

}
